package issr.market.services;

import issr.market.db.impl.DBControllerImpl;
import issr.market.utils.Utils;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;

import org.apache.log4j.Logger;

public class GestioneUtenteService{
	
	
	private static Logger logger = Logger.getLogger(GestioneUtenteService.class);
    
	
	public static void creaUtente(String nomeUtente, String loginUtente, String password, String mailUtente, String telUtente, String scadenzaReg, String scadenzaPwd, String ruoloUtente){
		String ruolo = Utils.numRuoloToString(Integer.valueOf(ruoloUtente));
		
		Long dataRegistrazione = new Date().getTime();
		
		Calendar scadenza = Calendar.getInstance();
		scadenza.add(Calendar.MONTH, Integer.valueOf(scadenzaReg));
		Long scadenzaRegistrazione = scadenza.getTime().getTime();
		
		scadenza = Calendar.getInstance();
		scadenza.add(Calendar.MONTH, Integer.valueOf(scadenzaPwd));
		Long scadenzaPassword = scadenza.getTime().getTime();
		
		logger.info("Creazione del nuovo "+ruolo+" "+loginUtente);
		
		new DBControllerImpl().creaNuovoUtente(nomeUtente, loginUtente, password, mailUtente, telUtente, ruolo, dataRegistrazione, scadenzaRegistrazione, scadenzaPassword);
		
	}
	
	public static void modificaUtente(String nomeUtente, String loginUtente, String password, String mailUtente, String telUtente, String scadenzaReg, String scadenzaPwd, String ruoloUtente, String idModifica){
		logger.info("Avvio procedura di modifica per utente "+nomeUtente+", id: "+idModifica);
		
		Long scadenzaRegistrazione = null;
		Long scadenzaPassword = null;
		
		if(scadenzaReg!=null && !"".equals(scadenzaReg)){
			logger.info("scadenza Reg: "+scadenzaReg);
			Calendar scadenza = Calendar.getInstance();
			scadenza.add(Calendar.MONTH, Integer.valueOf(scadenzaReg));
			scadenzaRegistrazione = scadenza.getTime().getTime();
			logger.info("Scadenza Reg modificata");
		}
		if(scadenzaPwd != null && !"".equals(scadenzaPwd)){
			logger.info("scadenza PWD: "+scadenzaPwd);
			Calendar scadenza = Calendar.getInstance();
			scadenza.add(Calendar.MONTH, Integer.valueOf(scadenzaPwd));
			scadenzaPassword = scadenza.getTime().getTime();
			logger.info("Scadenza Pwd modificata");
		}
		
		new DBControllerImpl().modificaUtente(Integer.valueOf(idModifica), nomeUtente, loginUtente, password, mailUtente, telUtente, ruoloUtente, scadenzaRegistrazione, scadenzaPassword);
		logger.info("Utente modificato correttamente");
		
	}
	
	public static void cancellaUtente(String[] idUtente){
		logger.info("Cancellazione di utenti con id "+Utils.commatize(Arrays.asList(idUtente)));
		new DBControllerImpl().eliminaUtenti(Arrays.asList(idUtente));
		logger.info("Cancellazione correttamente eseguita");
		
	}
	

		
	
	

}
